Column

Chart A

Column

Chart B

Chart C

---
title: "Dashboard"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    source: embed
---

```{r setup, include=FALSE}
library(flexdashboard)
```

```{r}
library(tidyverse)
library(httr)
library(jsonlite)
library(plotly)
library(flexdashboard)
```

```{r}
library(p8105.datasets)
data("instacart") 
```

```{r}
instacart_filtered <- instacart |>
  mutate(department_id = as.integer(department_id)) |>
  filter(
    !is.na(department_id), 
    !department_id %in% c(17, 11, 18, 21)
  ) |>
  sample_n(size = 10000)
```

Column {data-width=650}
-----------------------------------------------------------------------

### Chart A

```{r}
instacart_filtered |> 
  plot_ly(y = ~order_hour_of_day, color = ~department, type = "box", colors = "viridis") |> 
  layout(
    title = "Distribution of Departments Shopped by Hour of Day",
    yaxis = list(title = "Hour of Day"),
    xaxis = list(title = "Department")
  )
```

Column {data-width=350}
-----------------------------------------------------------------------

### Chart B

```{r}
instacart_filtered |> 
  count(aisle) |> 
  mutate(aisle = fct_reorder(aisle, n)) |> 
  plot_ly(x = ~aisle, y = ~n, color = ~aisle, type = "bar", colors = "viridis") |>
  layout(title = "Order Counts by Aisle")
```

### Chart C

```{r}
instacart_filtered |>
  mutate(text_label = str_c("Days Since Prior Order: ", days_since_prior_order, 
                             "<br>Order Sequence Number: ", order_number, 
                             "<br>Order Hour of Day: ", order_hour_of_day)) |> 
  plot_ly(
    x = ~days_since_prior_order, y = ~order_number, type = "scatter", mode = "markers", color = ~order_hour_of_day, text = ~text_label, alpha = 0.5
  ) |>
  layout(
    title = "User Order Number by Number of Days Since Prior Instacart Order",
    xaxis = list(title = "Days Since Prior Order"),
    yaxis = list(title = "Order Sequence Number")
  )
```